《计算机图形学》练习题(标准答案)-金锄头文库

您所在的位置:网站首页 矩阵e1 e2 e3 e4 《计算机图形学》练习题(标准答案)-金锄头文库

《计算机图形学》练习题(标准答案)-金锄头文库

2023-09-19 21:46| 来源: 网络整理| 查看: 265

1、计算机图形学练习题1直线扫描转换的Bresenham算法(1) 请写出生成其斜率介于0和1之间的直线的Bresenham算法步骤。(2) 设一直线段的起点和终点坐标分别为(1,1)和(8,5),请用Bresenham算法生成此直线段,确定所有要绘制象素坐标。(1)输入线段的两个端点,并将左端点存储在(x0,y0)中 将(x0,y0)装入帧缓存,画出第一个点 计算常量x, y, 2y, and 2y-2x,并得到决策参数的第一个值: p0 = 2y - x 从k=0开始,在沿线路径的每个xk处,进行下列检测: 如果pk 0,下一个要绘制的点就是(xk +1,yk) ,并且pk+1 = pk + 2y 否则下一个要绘制的点就是(xk +1, yk +1),并且 pk+1 = pk + 2y- 2x 重复步骤4,共 x-1次(2) m=(5-1)/(8-1)=0.57 x=7 y=4 P0=2y-x=1 2y=8 2y-2x=-6 kpk(xk+1,yk+1)01 (2,2) 1-5 (3,2)23 (4,3)3-3 (5,3)45 (6,4)5-1 (7,4)67 (8,5)2已知一多边形

2、如图1所示,其顶点为V1、V2、V3、V4、V5、V6,边为E1、E2、E3、E4、E5、E6。用多边形的扫描填充算法对此多边形进行填充时(扫描线从下到上)要建立边分类表(sorted edge table)并不断更新活化边表(active edge list)。(1) 在表1中填写边分类表中每条扫描线上包含的边(标明边号即可);(2) 在表2中写出边分类表中每条边结构中各成员变量的初始值(3) 指出位于扫描线y=6,7,8,9和10时活化边表中包含那些边,并写出这些边中的x值、ymax值、和斜率的倒数值1/m。x481图1多边形的边和顶点y1482356791023567910V1V2V3V4V5V6E1E2E3E4E5E6表1边分类表Y值(Scan Line Number)边(Edge Number)1020304E15E6,E26E67E38E5,E39E410012345678910表2 边的初始值边xymax1/m41 1 97 4 60 051 97 60 061 96 6 0 071 1 87 7 90 1 -182 79 91 -193 3 69 9 91 -13. 二

3、维变换(1) 记P(xf,yf)为固定点,sx、sy分别为沿x轴和y轴方向的缩放系数,请用齐次坐标(Homogeneous Coordinate)表示写出二维固定点缩放变换的变换矩阵。(2) 把以A(0,0)、B(1,1)和C(5,2)为顶点的三角形以顶点C为固定点放大2倍。求出放大后的三角形的顶点坐标。(1) (2)平移这个对象,使得他的固定点与原点重合 缩放这个在坐标原点的对象 平移这个对象,使得他的固定点回到原始位置 所以 A(-5,-2) B(-3,0) C(5,2)4二维变换(1) 请用齐次坐标表示写出点Q(x,y)绕定点P(a,b)旋转的旋转变换矩阵。(2) 求出以A(0,0)、B(1,1)和C(5,2)为顶点的三角形绕固定点P(-1,-1)点旋转450后的三角形的顶点坐标。(1) x=xr+(x- xr)cos -(y- yr)sin y=yr+(x- xr)sin +(y- yr)cos (2)平移这个对象,使得他的固定点与原点重合 旋转这个在坐标原点的对象 平移这个对象,使得他的固定点回到原始位置 A(-1,-1+) B(-1,-1+2) C(-1+3/2*,-1+9

4、/2*)5. 如图所示,L(-3,1)和R(2,6)为正方形裁剪窗口两个对角线角点,线段AB、CD、EF、GH和IJ为被裁剪线段。用Cohen-Sutherland线裁剪算法进行裁剪时要对线段的端点进行编码。(1) 请写出编码规则,并在图中标出相应区域的编码(2) 分别指出于点A、B、C、D、E、F、G、H对应的编码(3) 根据线段端点的编码对图中所有线段分类,指出哪些线段是可见的?哪些是不可见的?哪些是候选的裁剪线段。 J(-2,10)D(3,8)B(-1,7)I(-4,7)R(2,6)C(-1,5)E(-2,3)H(3,3)A(-4,2)F(1,2)L(-3,1)1-113-1G(1,-2)(1)100110001010000100000010010101000110(2)A:0001B:1000C:0000D:1010E:0000F:0000G:0100H:0010I:1000J:1000(3)可见的:EF不可见的:GH,IJ候选的:AB,CD6. 分别用Sutherland-Hodgman算法和Weiler-Atherton算法裁剪图1所示的多边形p1p2p3p4p5p6p7p

5、8p9p1,裁剪窗口为如图所示的矩形窗口。要求:(1) 用实线分别在图1(a)(b)(c)(d)中绘出用Sutherland-Hodgman算法沿裁剪窗口的左、右、上、下窗口边裁剪后的中间结果 (2) 用Weiler-Atherton算法对图1所示的多边形进行裁剪,以p1为起点,以图1箭头所示的方向为走向,在图1(e)中用箭头表示画出所有走过的边(包括多边形边和窗口边)及其走向;并在图1(f)中用实线绘出最后裁剪结果。图1(a)P1P2P3P4P5P6P7P8P9图1(b)P1P2P3P4P5P6P7P8P9图1多边形裁剪P1P2P3P4P5P6P7P8P9图1(c)P1P2P3P4P5P6P7P8P9图1(d)P1P2P3P4P5P6P7P8P9图1(e)P1P2P3P4P5P6P7P8P9图1(f)P1P2P3P4P5P6P7P8P97 简述多边形扫描填充算法基本原理和大致步骤,并以具体例子说明边分类表内容、扫描过程中活化边表的信息变化。(1)原理:在直角坐标系中,假设有一条从左至右的扫描线穿过多边形,从左至右开始计数,与多边形交点为奇数时,开始进入多边形,与多边形交点为偶数时,走

6、出多边形。这样在这相邻配对的奇偶交点间的所有象素都在多边形内。如图,奇数交点a,c,都是入多边形,偶数交点b,d都是走出多边形,相邻的奇偶交点配对,a,b之间,c,d之间的象素都多边形内,可见一条扫描线上,与多边形交点个数需要为偶数。依据这样的思路,扫描线从上到下从左到右依次扫过多边形即可求得多边形所占据的象素。(注意退化情况的处理,也就是扫描线刚好经过顶点或者多边形的边本身就是水平的情况) (2)步骤: 1)输入多边形的顶点的坐标 2)建立边表(ET) 3)初始化Y值 4)初始化活性边表(AEL),设置为空 5)每个扫描线从底部到顶部,做以下步骤直到ET和AEL是空的: 建立AEL 设置颜色 更新AEL: 当Y=YMAX时,删除边 x =x +X Y=y + 1 返回AEL(3) 例子:8 由坐标A(0,0,0),B(1,0,0),C(0,1,0),D(0,01)确定的锥体绕直线L旋转450,其中L的方向为V=J+K,且通过点C(0,1,0)。写出锥体旋转后的坐标。9.设3次参数多项式函数P(u)=au3+bu2+cu+d,求出满足下列边界条件的3次Hermite插值曲线(用矩阵表示): P(0) = Pk P(1) = Pk+1 P(0) = DPk P(1) = DPk+110.Cohen-Sutherland直线段裁剪算法和Liang-Barsky直线段裁剪算法是直线段裁剪的两种基本算法,试述两种算法的基本原理,并分析它们的优点和不足。(1)通过一个矩形的裁剪区域将整个屏幕分成9个部分,并为每一个部分赋予相应的区域码,然后根据端点的位置确定这个端点的区域码。先判断能否完全接受或者完全排除一条线段,若以上2个判断无法直接得出,则逐步裁剪,选取一个位于裁剪区外的端点,把端点的区域码和裁剪边界的区域码进行逻辑与运算,若结果为真,则端点在该裁剪边界外部,这时将端点移向线段和该边界的交点处,如此循环,直到裁剪结束。(2)利用线段的参数表达形式直接判别落在窗

《《计算机图形学》练习题(标准答案)》由会员千****8分享,可在线阅读,更多相关《《计算机图形学》练习题(标准答案)》请在金锄头文库上搜索。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3